﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using Domain; //подключение Domain
using Session; //подключение Session
using Notif; //подключение Notif

namespace Post
{
    public partial class FormPst : Form
    {
        BrokerPost b_pst = new BrokerPost(); // объявление BrokerPost
        FormPstUpd f_pstUpd = new FormPstUpd(); // объявление FormPstUpd
        public FormPst()
        {
            InitializeComponent();
        }

        private void Pst_sBt_Ex_Click(object sender, EventArgs e) // закрытие формы
        {
            this.Close();
        }

        private void Pst_sBt_Insr_Click(object sender, EventArgs e) // открытие формы "Добавить"
        {
            FormPstInsr f_pstInsr = new FormPstInsr();
            f_pstInsr.ShowDialog();
        }

        private void Pst_sBt_Upd_Click(object sender, EventArgs e) // открытие формы "Редактирование"
        {
            f_pstUpd.ShowDialog();
        }

        private void Pst_sBt_Del_Click(object sender, EventArgs e) // удаление записи
        {
            if (MessNotif.Question("Удалить запись?", "Удаление записи") == true) // вызов сообщение, если ответ "Да", то
            {
                Dm_Post pst = new Dm_Post(); // объявление Dm_Pers

                pst.Id_post = Convert.ToInt32(f_pstUpd.label2.Text); // присвоение значений Id_pers из label2

                b_pst.Delete(pst); // вызов функции удаления

                FillGrid(); // вызов функции заполнения Grid 
            }
        }

        private void Pst_dGV_Pst_SelectionChanged(object sender, EventArgs e) // метод на отслеживание и заполнение из Pst_dGV_Pst
        {
            DataGridViewCell cell = null; // объявление DataGridViewCell и его обнуление

            foreach (DataGridViewCell selectedCell in Pst_dGV_Pst.SelectedCells) // цикл на выбор ячейки, при выборе ячейки из Pst_dGV_Pst, это значение устанавливается в selectedCell 
            {
                cell = selectedCell; // приравнивание cell и selectedCell
                break; // перерывание цикла
            }

            if (cell != null) // если cell не пустой, то
            {
                DataGridViewRow row = cell.OwningRow; // объявление DataGridViewRow и присвоение ему текущего ряда 


                f_pstUpd.label2.Text = row.Cells[0].Value.ToString(); // передача значения из Cells[0] в f_pstUpd.label2.Text
                f_pstUpd.Pst_Upd_tE_Pst.Text = row.Cells[1].Value.ToString(); // передача значения из Cells[1] в f_pstUpd.Pst_Upd_tE_Pst.Text
            }
        }

        private void FormPst_Activated(object sender, EventArgs e) // при навидение фокуса, Grid перезаполняется
        {
            FillGrid(); // вызов функции заполнения
        }

        private void FillGrid() // функции заполнения Grid
        {
            Pst_dGV_Pst.DataSource = b_pst.FillGrid(); // вызов функции заполнения

            Pst_dGV_Pst.Columns[0].Visible = false;

            Pst_dGV_Pst.Columns[1].HeaderText = "Должнасть";

            Pst_dGV_Pst.AutoResizeColumns();
            //Prs_dGV_Prs.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
        }
    }
}
